Shader Minifier
Webで動くデモもあるよ!
できること
(x * x) * (x + 1) → x * x * (x + 1)
不要な波括弧の除去
リテラル数字の書き換え・事前計算
0.4 → .4
5*2 → 10
変数定義のマージ
int a = 1; int b; → int a = 1, b;
ベクトルの最適化
添字の統一
col.rgb → col.xyz
使う添字を --field-names で指定可能
コンストラクタ
vec3(1.0, 1.0, 1.0) → vec3(1.0)
インライン化
ある程度の自動インライン
--aggressive-inlining でより激しくインライン化
(超重要) i_ から始まる変数・関数を自動でインライン化
変数のリネーム